#pragma once 
//#include "list.h"

template<class Iterator,class Ref,class Ptr>
class Reverse_Iterator {
public:
	typedef Reverse_Iterator<Iterator, Ref, Ptr> Self;
	Reverse_Iterator(Iterator it) : _it(it){}
	//Reverse_Iterator(Iterator it) {
	//	_it = it;
	//}
	Self& operator++() {
		--_it;
		return *this;
	}
	Self& operator--() {
		++_it;
		return *this;
	}
	Ref operator*(){
		Iterator tmp = _it;
		return  *(--tmp);
	}
	Ptr operator->() {
		return *this->operator->();
	}

	bool operator!=(const Self& it) {
		return _it != it._it;
	}
	bool operator==(const Self& it) {
		
	}
private:
	Iterator _it;
};